package com.easyOrder.param.user;

import com.easyOrder.domain.Entity;
import com.easyOrder.domain.RongCloudToken;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wordnik.swagger.annotations.ApiModel;
import com.wordnik.swagger.annotations.ApiModelProperty;

import java.util.Date;
import java.util.List;


@ApiModel(description = "登录返回结果。")
public class LoginResult extends Entity {

    /**
     *
     */
    private static final long serialVersionUID = -7135760146301996211L;

    @ApiModelProperty(value = "会话ID")
    private String sessionId;

    @ApiModelProperty(value = "登录时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date loginDate;

    @ApiModelProperty(value = "用户ID")
    private Long userId;

    @ApiModelProperty(value = "用户名称")
    private String userName;

    /**
     * 人员ID
     */
    private Long employeeId;

    /**
     * 人员名称
     */
    private String employeeName;

    @ApiModelProperty(value = "头像路径")
    private String iconPath;

    @ApiModelProperty(value = "租户名称")
    private String tenantName;

    @ApiModelProperty(value = "分支机构名称")
    private String branchName;

    @ApiModelProperty(value = "分支机构ID")
    private Long branchId;

    @ApiModelProperty(value = "部门ID")
    private Long departmentId;

    @ApiModelProperty(value = "部门名称")
    private String departmentName;

    @ApiModelProperty(value = "文件URL前缀")
    private String fileUrlPrefix;

    @ApiModelProperty(value = "数据限制类型ID（1所有公司/门店,2所属部门,3所属公司/门店,4指定公司/门店）")
    private Integer dataLimitTypeId;

    @ApiModelProperty(value = "数据限制")
    private String dataLimit;

    private String mobile;

    private String userCode;

    private Integer applicationId;

    private Long provinceId;

    private String provinceName;

    private Long cityId;

    private String cityName;

    private Boolean branchManager = Boolean.FALSE;

    private Boolean tenantManager = Boolean.FALSE;



    /**
     * 可进行操作的门店
     */
    private List<Long> operationBranchIDs;

    private boolean isSupplier;

    private boolean firstLogin;

    public boolean isSuperUser() {
        return isSuperUser;
    }

    public void setIsSuperUser(boolean superUser) {
        isSuperUser = superUser;
    }

    private boolean isSuperUser;

    /**
     * 是否是总部人员
     */
    private Boolean isHeadQuartersUser;

    /**
     * 顶级总部部门ID
     */
    private Long topHeadDepartmentId;

    /**
     * 顶级总部部门名称
     */
    private String topHeadDepartmentName;

    /**
     * 是否存在未激活的门店
     */
    private boolean existInActiveBranch;

    /**
     * 账户所选择的当前门店身份是否未激活
     */
    private boolean currentBranchInActive;

    private String secretKey;

    public String getSecretKey() {
        return secretKey;
    }

    public void setSecretKey(String secretKey) {
        this.secretKey = secretKey;
    }

    public boolean isCurrentBranchInActive() {
        return currentBranchInActive;
    }

    public void setCurrentBranchInActive(boolean currentBranchInActive) {
        this.currentBranchInActive = currentBranchInActive;
    }

    public boolean isExistInActiveBranch() {
        return existInActiveBranch;
    }

    public void setExistInActiveBranch(boolean existInActiveBranch) {
        this.existInActiveBranch = existInActiveBranch;
    }

    public Long getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(Long provinceId) {
        this.provinceId = provinceId;
    }

    public String getProvinceName() {
        return provinceName;
    }

    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }

    public Long getCityId() {
        return cityId;
    }

    public void setCityId(Long cityId) {
        this.cityId = cityId;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public Boolean getBranchManager() {
        return branchManager;
    }

    public void setBranchManager(Boolean branchManager) {
        this.branchManager = branchManager;
    }

    public Boolean getTenantManager() {
        return tenantManager;
    }

    public void setTenantManager(Boolean tenantManager) {
        this.tenantManager = tenantManager;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public List<Long> getOperationBranchIDs() {
        return operationBranchIDs;
    }

    public void setOperationBranchIDs(List<Long> operationBranchIDs) {
        this.operationBranchIDs = operationBranchIDs;
    }

    public void setSuperUser(boolean superUser) {
        isSuperUser = superUser;
    }

    public Boolean getHeadQuartersUser() {
        return isHeadQuartersUser;
    }

    public void setHeadQuartersUser(Boolean headQuartersUser) {
        isHeadQuartersUser = headQuartersUser;
    }

    public Long getTopHeadDepartmentId() {
        return topHeadDepartmentId;
    }

    public void setTopHeadDepartmentId(Long topHeadDepartmentId) {
        this.topHeadDepartmentId = topHeadDepartmentId;
    }

    public String getTopHeadDepartmentName() {
        return topHeadDepartmentName;
    }

    public void setTopHeadDepartmentName(String topHeadDepartmentName) {
        this.topHeadDepartmentName = topHeadDepartmentName;
    }

    public boolean isFirstLogin() {
        return firstLogin;
    }

    public void setFirstLogin(boolean firstLogin) {
        this.firstLogin = firstLogin;
    }

    public Long getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(Long employeeId) {
        this.employeeId = employeeId;
    }

    public String getEmployeeName() {
        return employeeName;
    }

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    /**
     * @return the isSupplier
     */
    public boolean isSupplier() {
        return isSupplier;
    }

    /**
     * @param isSupplier the isSupplier to set
     */
    public void setSupplier(boolean isSupplier) {
        this.isSupplier = isSupplier;
    }


    /**
     * @return the userCode
     */
    public String getUserCode() {
        return userCode;
    }

    /**
     * @param userCode the userCode to set
     */
    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }

    /**
     * @return the mobile
     */
    public String getMobile() {
        return mobile;
    }

    /**
     * @param mobile the mobile to set
     */
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Integer getApplicationId() {
        return applicationId;
    }

    public void setApplicationId(Integer applicationId) {
        this.applicationId = applicationId;
    }

    /**
     * @return the dataLimitTypeId
     */
    public Integer getDataLimitTypeId() {
        return dataLimitTypeId;
    }

    /**
     * @return the dataLimit
     */
    public String getDataLimit() {
        return dataLimit;
    }

    /**
     * @param dataLimitTypeId the dataLimitTypeId to set
     */
    public void setDataLimitTypeId(Integer dataLimitTypeId) {
        this.dataLimitTypeId = dataLimitTypeId;
    }

    /**
     * @param dataLimit the dataLimit to set
     */
    public void setDataLimit(String dataLimit) {
        this.dataLimit = dataLimit;
    }




    /**
     * @return the branchId
     */
    public Long getBranchId() {
        return branchId;
    }

    /**
     * @param branchId
     *            the branchId to set
     */
    public void setBranchId(Long branchId) {
        this.branchId = branchId;
    }

    public String getSessionId() {
        return sessionId;
    }

    public void setSessionId(String sessionId) {
        this.sessionId = sessionId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getIconPath() {
        return iconPath;
    }

    public void setIconPath(String iconPath) {
        this.iconPath = iconPath;
    }

    public String getTenantName() {
        return tenantName;
    }

    public void setTenantName(String tenantName) {
        this.tenantName = tenantName;
    }

    public String getBranchName() {
        return branchName;
    }

    public void setBranchName(String branchName) {
        this.branchName = branchName;
    }

    public Long getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(Long departmentId) {
        this.departmentId = departmentId;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public Date getLoginDate() {
        return loginDate;
    }

    public void setLoginDate(Date loginDate) {
        this.loginDate = loginDate;
    }

    public String getFileUrlPrefix() {
        return fileUrlPrefix;
    }

    public void setFileUrlPrefix(String fileUrlPrefix) {
        this.fileUrlPrefix = fileUrlPrefix;
    }

    private RongCloudToken rongClountToken;

    public RongCloudToken getRongClountToken() {
        return rongClountToken;
    }

    public void setRongClountToken(RongCloudToken rongClountToken) {
        this.rongClountToken = rongClountToken;
    }
}

